home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
graphic
/
cheetah.zip
/
FAR.H
< prev
next >
Wrap
C/C++ Source or Header
|
1992-07-31
|
1KB
|
46 lines
#ifndef _FAR_H_
# define _FAR_H_
/* FAR.H
* Ä»¿ßá¡¿∩ ñ½∩ ¼á¡¿»π½¿α«óá¡¿∩ ß ñá½∞¡¿¼¿ π¬áºáΓѽ∩¼¿.
* ÅÑαÑ¡«ß¿¼«ßΓ∞: TC
* $Header: far.h,v 1.2 91/06/02 16:09:13 erdy Exp $
* Copyright (c) erdy 1991
*/
#ifdef __TURBOC__
/* æ½¿Φ¬«¼ ¬«¼»¿½∩Γ«α¡«-ºáó¿ß¿¼δÑ óÑΘ¿: */
#ifdef __BORLANDC__
# define _segment(p) ((unsigned)(void _seg *)(void far *)(p))
# define _offset(p) ((unsigned)(p))
#else
typedef union {
void far *farptr;
struct {
unsigned int offset;
unsigned int segment;
} reg;
} farpointer;
# define _segment(p) ((farpointer *)&(p))->reg.segment
# define _offset(p) ((unsigned)(p))
#endif
# define _farnormal(p) \
{\
_AX = _offset(p);\
_AX >>= 4;\
_segment(p) += _AX;\
_offset(p) &= 0xF;\
}
# define _ESbased(p) _ES##p
# define _ESdeclare_ptr(type,name) register type _es *_ES##name
# define _ESloadseg(p) _ES = _segment(p)
# define _ESloadoff(p) _ESbased(p) = (void _es *)_offset(p)
#else __TURBOC__
# define _ESbased(p) _ES##p
# define _ESdeclare_ptr(type,name) type far *_ES##name
# define _ESloadseg(p)
# define _ESloadoff(p) _ES##p = p
#endif __TURBOC__
#endif _FAR_H_